#include <REGX52.H>
#include <stdio.h>
#include <string.h>

void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main()
{
    // 使用单片机的定时器进行计时，提供9600波特率
    // 设置定时器1的工作模式，用于uart串口通信
    // xxxx ABCD
    // 0000 1111
    // 0000 ABCD
    // 清空高4位
    TMOD &= 0x0F;
    // 0000 ABCD
    // 0010 0000
    // 0010 ABCD
    TMOD |= 0x20;

    // 9600 波特率
    // 0xFD 0xFE 0xFF -> 0x00
    TH1 = 0xFD;
    TL1 = 0xFD;
    // 定时器1打开
    TR1 = 1;

    // 串口模式1(8位UART)，允许接收
    SCON = 0x50;
    // 波特率不加倍
    PCON = 0x00;
    // 串口中断开启
    ES = 1;
    // 总中断开启
    EA = 1;
    // 数据发送准备
    TI = 1;

    while (1)
    {
        delay_ms(500);
        printf("hello world\n");
    }
}